home *** CD-ROM | disk | FTP | other *** search
/ DS-CD ROM 2 1993 August / DS CD-ROM 2.Ausgabe (August 1993).iso / programm / ds0257 / lib.exe / EXTDOS.MAB < prev    next >
Text File  |  1992-02-02  |  9KB  |  491 lines

  1. DOS_INFO_BLOCK STRUC [BX]
  2. DIB_SHARECOUNT DW ?
  3. DIB_SHARETIME DW ?
  4. DIB_LASTBUFFER DW ?,?
  5. DIB_INPUTLINEPOINTER DW ?
  6. DIB_FIRST_MCB DW ?
  7. DIB_FIRST_DPB DD ?
  8. DIB_SDL DD ?
  9. DIB_CLOCK_DEVICE DD ?
  10. DIB_CON_DEVICE DD ?
  11. DIB_MAXSEKTORLENGTH DW ?
  12. DIB_FIRSTBUFFER DD ?
  13. DIB_DRIVETABLE DD ?
  14. DIB_FCBSTABLE DD ?
  15. DIB_FCBSPARM2 DW ?
  16. DIB_PHYSICALLWS DB ?
  17. DIB_LOGICALLWS DB ?
  18. DIB_NULDEVICEENTRYP DB 12H DUP ?
  19. DIB_JOINEDDRIVES DB ?
  20. DIB_SPECIALNAMELIST DW ?
  21. DIB_UNKNOWN DD ?
  22. DIB_IFSCHAIN DD ?
  23. DIB_BUFFERSPARM1 DW ?
  24. DIB_BUFFERSPARM2 DW ?
  25. DIB_BOOTDRIVE DB ?
  26. DIB_386INDIKATOR DB ?
  27. DIB_EXTMEMSIZE DW ?
  28. ENDS
  29. GETDIBADRESS MACRO
  30. MOV AH,052H
  31. INT 021H
  32. SUB BX,0CH
  33. #EM
  34. MEMORY_CONTROL_BLOCK STRUC [BX]
  35. MCB_ID_BYTE DB ?
  36. MCB_PSP_SEGMENT DW ?
  37. MCB_BLOCK_LENGTH DW ?
  38. MCB_RESERVED DB 3 DUP ?
  39. MCB_NAME DB 8 DUP ?
  40. ENDS
  41. LASTMCB_ID EQU 'Z'
  42. NOTLASTMCB_ID EQU 'M'
  43. BLOCK_USED_BY_DOS EQU 0008H
  44. BLOCK_NOT_USED EQU 0000H
  45. GETFIRSTMCBADRESS MACRO
  46. GETDIBADRESS
  47. MOV ES,ES:DIB_FIRST_MCB
  48. XOR BX,BX
  49. #EM
  50. GETNEXTMCBADRESS MACRO
  51. CMP ES:MCB_ID_BYTE,LASTMCB_ID
  52. JZ >M1
  53. MOV AX,ES
  54. ADD AX,ES:MCB_BLOCK_LENGTH
  55. INC AX
  56. MOV ES,AX
  57. MOV BX,0
  58. M1:
  59. #EM
  60. SUB_CONTROL_BLOCK STRUC [BX]
  61. SCB_ID_BYTE DB ?
  62. SCB_MAINSEGMENT DW ?
  63. SCB_BLOCK_LENGTH DW ?
  64. SCB_RESERVED DB 3 DUP ?
  65. SCB_NAME DB 8 DUP ?
  66. ENDS
  67. DEVICEDRIVER_ID EQU 'D'
  68. DEVICEDRIVERA_ID EQU 'E'
  69. IFSDRIVER_ID EQU 'I'
  70. SDL_ID EQU 'F'
  71. FCBS_ID EQU 'X'
  72. BUFFERWORKSPACE_ID EQU 'C'
  73. BUFFERS_ID EQU 'B'
  74. DRIVE_ID EQU 'L'
  75. STACKS_ID EQU 'S'
  76. GETFIRSTSCBADRESS MACRO
  77. GETDIBADRESS
  78. MOV BX,ES:DIB_FIRST_MCB
  79. INC BX
  80. MOV ES,BX
  81. XOR BX,BX
  82. #EM
  83. GETNEXTSCBADRESS MACRO
  84. MOV AX,ES
  85. ADD AX,ES:SCB_BLOCK_LENGTH
  86. INC AX
  87. MOV ES,AX
  88. MOV BX,0
  89. CMP ES:SCB_ID_BYTE,LASTMCB_ID
  90. JZ >M1
  91. CMP ES:SCB_ID_BYTE,NOTLASTMCB_ID
  92. M1:
  93. #EM
  94. SDLHEADER STRUC [BX]
  95. SDLHEADER_NEXT DD ?
  96. SDLENTRYS DW ?
  97. ENDS
  98. GETFIRSTSDLTABLE MACRO
  99. GETDIBADRESS
  100. LES BX,ES:DIB_SDL
  101. MOV CX,ES:SDLENTRYS
  102. #EM
  103. GETNEXTSDLTABLE MACRO
  104. CMP W ES:SDLHEADER_NEXT,0FFFFH
  105. JZ >M1
  106. LES BX,ES:SDLHEADER_NEXT
  107. MOV CX,SDLENTRYS
  108. M1:
  109. #EM
  110. FCBSHEADER STRUC [BX]
  111. FCBSHEADER_NEXT DD ?
  112. FCBSENTRYS DW ?
  113. FCBSENTRYS1 DW ?
  114. ENDS
  115. GETFIRSTFCBSTABLE MACRO
  116. GETDIBADRESS
  117. LES BX,ES:DIB_FCBSTABLE
  118. MOV CX,ES:FCBSENTRYS
  119. #EM
  120. GETNEXTFCBSTABLE MACRO
  121. CMP W ES:FCBSHEADER_NEXT,0FFFFH
  122. JZ >M1
  123. LES BX,ES:FCBSHEADER_NEXT
  124. MOV CX,FCBSENTRYS
  125. M1:
  126. #EM
  127. SDLENTRY3 STRUC [BX]
  128. SDLENTRY3_USED DW ?
  129. SDLENTRY3_CODE DW ?
  130. SDLENTRY3_ATTR DB ?
  131. SDLENTRY3_STATUS DW ?
  132. SDLENTRY3_DPB DD ?
  133. SDLENTRY3_SCLUSTER DW ?
  134. SDLENTRY3_TIME DW ?
  135. SDLENTRY3_DATE DW ?
  136. SDLENTRY3_LENGTH DD ?
  137. SDLENTRY3_POINTER DD ?
  138. SDLENTRY3_ARCLUSTER DW ?
  139. SDLENTRY3_AACLUSTER DW ?
  140. SDLENTRY3_SEKTORNR DW ?
  141. SDLENTRY3_DIRENTR DB ?
  142. SDLENTRY3_NAME DB 8 DUP ?
  143. SDLENTRY3_EXT DB 3 DUP ?
  144. SDLENTRY3_SHAREDATA DB 6 DUP ?
  145. SDLENTRY3_PSP DW ?
  146. SDLENTRY3_SHARE2 DW ?
  147. ENDS
  148. SDLENTRY4 STRUC [BX]
  149. SDLENTRY4_USED DW ?
  150. SDLENTRY4_CODE DW ?
  151. SDLENTRY4_ATTR DB ?
  152. SDLENTRY4_STATUS DW ?
  153. SDLENTRY4_DPB DD ?
  154. SDLENTRY4_SCLUSTER DW ?
  155. SDLENTRY4_TIME DW ?
  156. SDLENTRY4_DATE DW ?
  157. SDLENTRY4_LENGTH DD ?
  158. SDLENTRY4_POINTER DD ?
  159. SDLENTRY4_ARCLUSTER DW ?
  160. SDLENTRY4_SEKTORNR DD ?
  161. SDLENTRY4_DIRENTR DB ?
  162. SDLENTRY4_NAME DB 8 DUP ?
  163. SDLENTRY4_EXT DB 3 DUP ?
  164. SDLENTRY4_SHAREDATA DB 6 DUP ?
  165. SDLENTRY4_PSP DW ?
  166. SDLENTRY4_SHARE2 DW ?
  167. SDLENTRY4_UNKNOWN DW ?
  168. SDLENTRY_IFS DD ?
  169. ENDS
  170. DRIVETABLE STRUC [BX]
  171. DRIVE_PFAD DB 043H DUP ?
  172. DRIVE_USED DW ?
  173. DRIVE_DPB DD ?
  174. DRIVE_DIR DW ?
  175. DRIVE_UNKNOWN DB 4 DUP ?
  176. DRIVE_PFADL DW ?
  177. DRIVE4_UNKNOWN DB 7 DUP ?
  178. ENDS
  179. DRIVETSIZE33 EQU OFFSET DRIVE4_UNKNOWN
  180. DRIVETSIZE4XX EQU TYPE DRIVETABLE
  181. LOGLWKNOWN EQU 04000H
  182. LOGLWSUBST EQU 05000H
  183. LOGLWJOIN EQU 06000H
  184. LOGLWNETWORK EQU 08000H
  185. LOGLWIFS EQU 0C000H
  186. GETDRIVEADRESS MACRO
  187. GETDIBADRESS
  188. MOV CL,ES:DIB_LOGICALLWS
  189. XOR CH,CH
  190. LES BX,ES:DIB_DRIVETABLE
  191. #EM
  192. DEVICE_HEADER STRUC [BX]
  193. NEXT_DEVICEHEADER DD ?
  194. DEVICE_ATTR DW ?
  195. DEVICE_STRATEGY DW ?
  196. DEVICE_INTERRUPT DW ?
  197. DEVICE_SUBDRIVER DB
  198. DEVICE_NAME DB 8 DUP ?
  199. ENDS
  200. GETFIRSTDEVICEDRIVER MACRO
  201. GETDIBADRESS
  202. ADD BX,OFFSET DIB_NULDEVICEENTRYP
  203. #EM
  204. GETNEXTDEVICEDRIVER MACRO
  205. CMP W ES:NEXT_DEVICEHEADER,0FFFFH
  206. JZ >M1
  207. LES BX,ES:NEXT_DEVICEHEADER
  208. M1:
  209. #EM
  210. CHECKDEVICEDRIVER MACRO
  211. TEST ES:DEVICE_ATTR,08000H
  212. #EM
  213. CHECKCLOCK$DEVICE MACRO
  214. MOV AX,ES:DEVICE_ATTR
  215. AND AX,08008H
  216. CMP AX,08008H
  217. #EM
  218. CHECKSTDOUTDEVICE MACRO
  219. MOV AX,ES:DEVICE_ATTR
  220. AND AX,08001H
  221. CMP AX,08001H
  222. #EM
  223. CHECKSTDINDEVICE MACRO
  224. MOV AX,ES:DEVICE_ATTR
  225. AND AX,08002H
  226. CMP AX,08002H
  227. #EM
  228. PSP STRUC [BX]
  229. PSP_ENDCOMMAND DW ?
  230. PSP_LASTSEGMENT DW ?
  231. PSP_RESERVED DB ?
  232. PSP_DOSFARCALL DB 5 DUP ?
  233. PSP_ENDVEKTOR DD ?
  234. PSP_BREAKVEKTOR DD ?
  235. PSP_ERRORVEKTOR DD ?
  236. PSP_LOADERID DW ?
  237. PSP_HANDLETABLE DB 14H DUP ?
  238. PSP_ENVSEG DW ?
  239. PSP_STACKPOINTER DD ?
  240. PSP_MAXHANDLES DW ?
  241. PSP_HANDLETABADR DD ?
  242. PSP_PSPPOINTER DD ?
  243. PSP_UNKNOWN1 DB 14H DUP ?
  244. PSP_INT21COMMAND DB 3 DUP ?
  245. PSP_RESERVEDFORUSER DB 09H DUP ?
  246. PSP_FCB1 DB
  247. DB 10H DUP ?
  248. PSP_FCB2 DB
  249. DB 14H DUP ?
  250. PSP_PARMLENGTH DB
  251. PSP_DTA DB ?
  252. PSP_PARMS DB 79H DUP 0
  253. ENDS
  254. GETPSPADRESS MACRO
  255. MOV AH,051H
  256. INT 021H
  257. MOV ES,BX
  258. XOR BX,BX
  259. #EM
  260. SETPSPADRESS MACRO
  261. MOV AH,50H
  262. INT 021H
  263. #EM
  264. BUFFER3_HEADER STRUC [BX]
  265. BUFFER3_NEXTBUFFER DD ?
  266. BUFFER3_DRIVER_NUMBER DB ?
  267. BUFFER3_USED DB ?
  268. BUFFER3_SECTORNUMBER DW ?
  269. BUFFER3_COUNT DB ?
  270. BUFFER3_DISTANCE DB ?
  271. BUFFER3_DPB DD ?
  272. BUFFER3_UNKNOWN DW ?
  273. BUFFER3_SECTOR DB 200H DUP ?
  274. ENDS
  275. GETFIRSTBUFFER3 MACRO
  276. GETDIBADRESS
  277. LES BX,ES:DIB_FIRSTBUFFER
  278. #EM
  279. GETNEXTBUFFER3 MACRO
  280. CMP W ES:BUFFER3_NEXTBUFFER,0FFFFH
  281. JZ >M1
  282. LES BX,ES:BUFFER3_NEXTBUFFER
  283. M1:
  284. #EM
  285. PIB40 STRUC [BX]
  286. PIB40_HASHCHAINPOINTER DD ?
  287. PIB40_HASHCHAINCOUNT DW ?
  288. PIB40_LOOKAHEADPOINTER DD ?
  289. PIB40_LOOKAHEADCOUNT DW ?
  290. PIB40_UNKNOWN DB ?
  291. PIB40_EMSHANDLE DW ?
  292. PIB40_EMSPAGE DW ?
  293. PIB40_UNKNOWN2 DW ?
  294. PIB40_EMSFRAME DW ?
  295. PIB40_UNKNOWN3 DB 0AH DUP ?
  296. ENDS
  297. PIB401 STRUC [BX]
  298. PIB401_HASHCHAINPOINTER DD ?
  299. PIB401_HASHCHAINCOUNT DW ?
  300. PIB401_LOOKAHEADPOINTER DD ?
  301. PIB401_LOOKAHEADCOUNT DW ?
  302. PIB401_UNKNOWN DB 8 DUP ?
  303. PIB401_WORKSPACEPOINTER DD ?
  304. PIB401_EMSHANDLE DW ?
  305. PIB401_EMSPAGE DW ?
  306. PIB401_UNKNOWN2 DW ?
  307. PIB401_EMSFRAME DW ?
  308. PIB401_UNKNOWN3 DW ?
  309. ENDS
  310. HASHCHAINENTRY STRUC [BX]
  311. HASHCHAIN_EMSPAGE DW ?
  312. HASHCHAIN_LASTBUFFERP DD ?
  313. HASHCHAIN_DIRTYBUFFERS DW ?
  314. ENDS
  315. BUFFER4_HEADER STRUC [BX]
  316. BUFFER4_NEXTBUFFER DW ?
  317. BUFFER4_LASTBUFFER DW ?
  318. BUFFER4_DRIVER_NUMBER DB ?
  319. BUFFER4_USED DB ?
  320. BUFFER4_SECTORNUMBER DD ?
  321. BUFFER4_COUNT DB ?
  322. BUFFER4_DISTANCE DW ?
  323. BUFFER4_DPB DD ?
  324. BUFFER4_REMOTECOUNT DW ?
  325. BUFFER4_UNKNOWN DB ?
  326. BUFFER4_SECTOR DB 200H DUP ?
  327. ENDS
  328. GETPIBADRESS MACRO
  329. GETDIBADRESS
  330. LES BX,ES:DIB_FIRSTBUFFER
  331. #EM
  332. GETHASHCHAINADRESS MACRO
  333. GETDIBADRESS
  334. LES BX,ES:DIB_FIRSTBUFFER
  335. MOV CX,ES:PIB40_HASHCHAINCOUNT
  336. LES BX,ES:PIB40_HASHCHAINPOINTER
  337. #EM
  338. GETLOOKAHEADADRESS MACRO
  339. GETDIBADRESS
  340. LES BX,ES:DIB_FIRSTBUFFER
  341. MOV CX,ES:PIB40_LOOKAHEADCOUNT
  342. OR CX,CX
  343. JZ >M1
  344. LES BX,ES:PIB40_LOOKAHEADPOINTER
  345. M1:
  346. #EM
  347. DOS_PARAMETER_BLOCK3 STRUC [BX]
  348. DPB3_DRIVER_NUMBER DB ?
  349. DPB3_DSUBUNIT_NUMBER DB ?
  350. DPB3_BYTES_SEKTOR DW ?
  351. DPB3_SHIFTMASK DB ?
  352. DPB3_SEKTORS_CLUSTER DB ?
  353. DPB3_RESERVED_SEKTORS DW ?
  354. DPB3_FATS DB ?
  355. DPB3_ROOTDIRENTRYS DW ?
  356. DPB3_FIRST_SECTOR DW ?
  357. DPB3_LAST_CLUSTER DW ?
  358. DPB3_SECTORS_FAT DB ?
  359. DPB3_FIRST_DATA_SEC DW ?
  360. DPB3_DEVICE_DRIVER DD ?
  361. DPB3_MEDIA_BYTE DB ?
  362. DPB3_USED_FLAG DB ?
  363. DPB3_NEXT_DPB DD ?
  364. ENDS
  365. DOS_PARAMETER_BLOCK4 STRUC [BX]
  366. DPB4_DRIVER_NUMBER DB ?
  367. DPB4_DSUBUNIT_NUMBER DB ?
  368. DPB4_BYTES_SEKTOR DW ?
  369. DPB4_SHIFTMASK DB ?
  370. DPB4_SEKTORS_CLUSTER DB ?
  371. DPB4_RESERVED_SEKTORS DW ?
  372. DPB4_FATS DB ?
  373. DPB4_ROOTDIRENTRYS DW ?
  374. DPB4_FIRST_SECTOR DW ?
  375. DPB4_LAST_CLUSTER DW ?
  376. DPB4_SECTORS_FAT DW ?
  377. DPB4_FIRST_DATA_SEC DW ?
  378. DPB4_DEVICE_DRIVER DD ?
  379. DPB4_MEDIA_BYTE DB ?
  380. DPB4_USED_FLAG DB ?
  381. DPB4_NEXT_DPB DD ?
  382. DPB4_LASTCLUSTER DW ?
  383. DPB4_RESERVERD DW ?
  384. ENDS
  385. GETFIRSTDPB MACRO
  386. GETDIBADRESS
  387. LES BX,ES:DIB_FIRST_DPB
  388. #EM
  389. GETNEXTDPB MACRO
  390. PUSH BX,CX
  391. MOV AH,030H
  392. INT 021H
  393. POP CX,BX
  394. CMP AL,03H
  395. IF A INC BX
  396. CMP W ES:DPB3_NEXT_DPB,0FFFFH
  397. JZ >M1
  398. LES BX,ES:DPB3_NEXT_DPB
  399. M1:
  400. #EM
  401. GETDISKPARAMETERBLOCK MACRO
  402. PUSH DS
  403. MOV AH,032H
  404. INT 021H
  405. CMP AL,0FFH
  406. STC
  407. JZ >M1
  408. MOV ES,DS
  409. M1:
  410. POP DS
  411. #EM
  412. GETSETSWITCHCHAR MACRO
  413. AND AL,01H
  414. MOV AH,037H
  415. INT 021H
  416. #EM
  417. GETBUSYFLAGADRESS MACRO
  418. MOV AH,034H
  419. INT 021H
  420. #EM
  421. GETCRITICALERRORFLAGADRESS MACRO
  422. PUSH DS,SI,CX,DX
  423. MOV AX,05D06H
  424. INT 021H
  425. MOV ES,DS
  426. MOV BX,SI
  427. POP DX,CX,SI,DS
  428. #EM
  429. SHARE? MACRO
  430. MOV AX,01000H
  431. INT 02FH
  432. CMP AL,0FFH
  433. #EM
  434. NLSFUNC? MACRO
  435. MOV AX,01400H
  436. INT 02FH
  437. CMP AL,0FFH
  438. #EM
  439. GRAFTABL? MACRO
  440. MOV AX,0B000H
  441. INT 02FH
  442. CMP AL,0FFH
  443. #EM
  444. APPEND? MACRO
  445. MOV AX,0B700H
  446. INT 02FH
  447. CMP AL,0FFH
  448. #EM
  449. ERRORHANDLER? MACRO
  450. MOV AX,0500H
  451. INT 02FH
  452. CMP AL,0FFH
  453. #EM
  454. NETWORKREDIRECTOR? MACRO
  455. MOV AX,1100H
  456. INT 02FH
  457. CMP AL,0FFH
  458. #EM
  459. DOSSHELL? MACRO
  460. MOV AX,1900H
  461. INT 02FH
  462. CMP AL,0FFH
  463. #EM
  464. ANSISYS? MACRO
  465. MOV AX,1A00H
  466. INT 02FH
  467. CMP AL,0FFH
  468. #EM
  469. DISPLAYSYS? MACRO
  470. MOV AX,0AD00H
  471. INT 02FH
  472. CMP AL,0FFH
  473. #EM
  474. KEYB? MACRO
  475. PUSH ES,DI
  476. MOV AX,0AD80H
  477. INT 02FH
  478. POP DI,ES
  479. CMP AL,0FFH
  480. #EM
  481. XMA2EMS? MACRO
  482. MOV AX,1B00H
  483. INT 02FH
  484. CMP AL,0FFH
  485. #EM
  486. XMS? MACRO
  487. MOV AX,4300H
  488. INT 02FH
  489. CMP AL,080H
  490. #EM
  491.